package cn.itsource.Controller.system;

import cn.itsource.Utils.JSONResult;
import cn.itsource.Utils.UseTools;
import cn.itsource.domain.sys_user;
import cn.itsource.service.ILoginService;
import org.apache.coyote.Response;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

import javax.servlet.http.HttpServletRequest;

@RestController//ResponsBoyd和Controller联合注解1.将当前类交给spring管理2.将方法转化json格式,不做页面跳转
@RequestMapping("/login")   // 一级路径
public class longinController {
    //注入登陆层依赖
    @Autowired
    private ILoginService service;
    /**
     * 登录的接口方法
     * @RequestBody: 接收前端json对象类型的数据
     */
    @RequestMapping(value = "/login",method = RequestMethod.POST)//二级路劲
    public JSONResult login(@RequestBody sys_user user, HttpServletRequest request){
        try {
            // 调用业务层完成登录的业务
            sys_user longin = service.longin(user);
            // 将登录成功的用户信息存储到session里面
            UseTools.saveUserSession(request,longin);
            // 将登录成功的用户信息传到前端
            return JSONResult.createSuccess(longin);

        }catch(RuntimeException e){
            e.printStackTrace();
            // 捕获自己抛出来运行时异常(e.getMessage()表示在业务层自己抛出的异常信息)
            return JSONResult.createError(e.getMessage());
        }catch(Exception e){
            e.printStackTrace();
            // 捕获所有异常(e.getMessage()表示在虚拟机抛出的异常信息)
            return JSONResult.createError(e.getMessage());
        }


    }

}
